import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;

/**
 * Esta clase cambia el nivel al que el jugador este jugando.
 * 
 * @Gabriel 
 * @1.0
 */
public class CambiaNivel extends Actor
{
    /**
     * Variable para checar el nivel.
     */
    public int nivel ;
    GreenfootImage image = new GreenfootImage("over.png");
    
    /**
     * Este metodo cambia el nivel del jugador.
     */
    public CambiaNivel(int nivel)
    {
        this.nivel = nivel;
    }
   
    /**
     * Este metodo simplemenete arregla la posicion del las cosas en el mundo.
     */
    public void act() 
    {
        List<Blanco> b = getWorld().getObjects(Blanco.class);
        Blanco objBlanco = b.get(0);
        GreenfootImage imageBlanco = objBlanco.getImage();
        List<Enemigo> e = getWorld().getObjects(Enemigo.class);
        List<Nivel> numSet = getWorld().getObjects(Nivel.class);
        nivel= numSet.get(0).getNivel();
        getWorld().removeObjects(b);
        getWorld().removeObjects(e);
        /**
         * Aqui se hace la configuracion de los niveles.
         * Se pintan los blancos, muros, aguilas y falsos.
         */
        
        if(nivel ==1)
        {
            getWorld().addObject(new Blanco(),  700, 500);
            getWorld().addObject(new Arquero(), 50, 540);
            getWorld().addObject(new Aguila(),  30, 100);
        }
        else if(nivel == 2)
        {
            getWorld().addObject(new Blanco(), 700, 100);
            getWorld().addObject(new Aguila(), 50,  300);
            getWorld().addObject(new Aguila(), 250, 400);
            getWorld().addObject(new Aguila(), 420, 450);
            getWorld().addObject(new Aguila(), 580, 250);
        }
        else if(nivel == 3)
        {
            getWorld().addObject(new Blanco(), 760, 410);
            getWorld().addObject(new Muro(),   400,550);
            getWorld().addObject(new Muro(),   400,450);
            getWorld().addObject(new Aguila(),  30, 100);
        }
        else if(nivel == 4)
        {
            getWorld().addObject(new Blanco(), 700, 500);
            getWorld().addObject(new Falso(),  500, 500);       
            getWorld().addObject(new Aguila(),  30, 100);
        }
        else if(nivel == 5)
        {
            //int i = getRandomNumber(2);   
            getWorld().addObject(new Aguila(),  30, 50);
            switch(Greenfoot.getRandomNumber(2))
                    {
                        case 0: getWorld().addObject(new Blanco(), 700, 500);
                                getWorld().addObject(new Falso(),  700, 300);
                                getWorld().addObject(new Falso(),  700, 100);  
                                break;
                        case 1: getWorld().addObject(new Falso(), 700, 500);
                                getWorld().addObject(new Blanco(),  700, 300);
                                getWorld().addObject(new Falso(),  700, 100);  
                                break;
                        case 2: getWorld().addObject(new Falso(), 700, 500);
                                getWorld().addObject(new Blanco(),  700, 300);
                                getWorld().addObject(new Falso(),  700, 100);  
                                break;
            }
        }
        else if(nivel==6)
        {      
            List<Arquero> a = getWorld().getObjects(Arquero.class);
            List<Blanco> d = getWorld().getObjects(Blanco.class);
            List<Nivel> n = getWorld().getObjects(Nivel.class);
            List<Puntos> o = getWorld().getObjects(Puntos.class);
            List<Flechas> h = getWorld().getObjects(Flechas.class);
            List<Falso> g = getWorld().getObjects(Falso.class);
            getWorld().removeObjects(a);
            getWorld().removeObjects(d);
            getWorld().removeObjects(n);
            getWorld().removeObjects(o);
            getWorld().removeObjects(h);
            getWorld().removeObjects(g);
            getWorld().setBackground("over.png");  
            getWorld().addObject(new Inicio(),745,545);
          
        }
            getWorld().removeObject(this);    
        }  
}
